Rule Based Vector Space Model For Creating Implied Trade Templates

ABSTRACT

A match engine is utilized by either a market participant or an electronic trading system. The match engine receives orders, stores them internally, calculates tradable combinations and displays or otherwise publishes the tradable combinations or the order(s) needed to complete tradable combinations. The match engine operates under a set of rules that may be customized to provide only the tradable combinations that are likely to be executed and contribute to total trading volume. At least some tradeable combinations that are not likely to be traded are not calculated, which frees up the computing capacity of the electronic trading system.

TECHNICAL FIELD

The following disclosure relates to software, systems and methods forelectronic trading in a commodities exchange, derivatives exchange orsimilar business involving tradable items where orders from buyers arematched with orders from sellers.

BACKGROUND

Electronic trading systems allow entry of a bid or offer for aparticular tradable item. Simple bids and offers for a particulartradable item are called outright orders. A spread order is thesimultaneous purchase and sale of two or more tradable items, such asfutures contracts for different months, different commodities, ordifferent grades of the same commodity. Each bid and offer component ofa spread is termed a bid leg and an offer leg respectively. Real ordersare orders that are entered into the system by traders. The tradersenter the appropriate information into the trading system and releasethe order into the system as an open order. Real orders may be enteredfor any tradable item in the system including, but not limited to,futures, options, inter-commodity spreads, intra-commodity spreads,futures strips, calendar spreads, butterfly spreads, condor spreads,crack spreads, straddles, and strangles.

Implied orders, unlike real orders, are generated by the system on thebehalf of traders who have entered real orders. For example, an impliedspread may be derived from two real outright orders. The system createsthe “derived” or “implied” order and displays the market that resultsfrom the creation of the implied order as a market that may be tradedagainst. If a trader trades against this implied market, then the realorders that combined to create the implied order and the resultingmarket are executed as matched trades.

The complexity of the market arises from, among other things, the largenumber of potential order combinations. For example, a single commodityproduct available in 72 different delivery months will have 72 possibleoutright contracts, each of which may have a resting buy order or aresting sell order. There are 2556=(72*71)/2 potential spread contracts,noting that the buy/sell combination and sell/buy combination of any twooutrights both correspond to the same spread contract. For a simpleimplied where two orders combine to form a third, there are5256=2*72+2*2556 choices of the order to imply and 71=72−1 ways tochoose a combination of two orders implying any given third order,leading to 373,156 combinations overall. As the number of contractsinvolved in the implication gets larger, the number of possiblecombinations grows exponentially. The problem is further aggravated whenthe implied orders can include orders in combination contracts withmultiple legs.

For these reasons, trading systems that derive implied orders are oftenlimited by computing capacity and speed. Conventional trading systems donot have an efficient method of determining all possible or bestpossible implied markets, especially when the order combinations involvemore than a few orders.

One example of a trading system is described in U.S. Pat. No. 7,548,882to Pazner. The trading system solves for all possible market combinationusing a brute force method. Equations for markets are generated andsolved through substitution in an iterative process that determines allpossible combinations in a particular sequence. Using this iterativeprocess, all possible implied orders are computed without attention towhich implied orders are most likely to actually result in trades. Theinability to calculate and publish implied orders in a timely mannerthat will likely result in trades has limited the use of this type oftrading system.

What is desirable is a system for calculating implied orders using afocused algorithm that will calculate the implied orders more likely toresult in trades first without spending time and computing capacity onall theoretical combinations.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a graph of trading volume.

FIG. 2 is a graph of implied order calculations.

FIG. 3 illustrates an exemplary vector space.

FIG. 4 illustrates an electronic trading system.

FIG. 5 illustrates a match engine of the electronic trading system.

FIG. 6 illustrates an exemplary algorithm for providing implied ordersin an electronic trading system.

FIG. 7 illustrates another exemplary algorithm for providing impliedorders in an electronic trading system.

DETAILED DESCRIPTION

The order matching function in a trading system is typically performedby a specialized component referred to as the match engine, of whichthere may be multiple instances. Each match engine is a specializedorder matching component that receives orders, stores them internally,calculates tradable combinations and advertises the availability of realand implied orders in the form of market data. The match engine maycalculate tradable combinations at the beginning of a time interval. Forexample, the time interval may correspond to a trading day or beindicated by the boot sequence of the match engine. Alternatively, thematch engine may calculate the tradable combinations in real time. Forexample, the tradable combinations that involve each received order maybe calculated when the order is received.

When the traders using the system respond to the market data by sendingadditional orders, these are received by the match engine, which thenattempts to match them with previously received orders or combinationsthereof. The match engine executes possible trades and communicates theresults.

Only a subset of the total possible trades are calculated by the matchengine. The match engine operates under a set of rules (constraints)that may be customized to provide only the tradable combinations thatare likely to be executed and contribute to the trading volume of theexchange. Tradeable combinations that are not likely to be traded arenot calculated, which frees up the computing capacity of the electronictrading system.

One of the advantages of quickly identifying tradable combinations isthat the exchange can execute trades that would not have previouslyoccurred. An increase in trading volume is an increase in revenue forthe exchange. Additionally, a market participant (independent of theexchange) using a system that can identify unpublished tradablecombinations may be able to profit from arbitrage opportunities.Arbitrage opportunities occur when a trader is able to place a series oforders to take advantage of a price differentials in two or moremarkets. Assuming the arbitrage opportunity can be accurately determinedand the trades timely executed, an immediate profit is realized.

As discussed above, iterative methods of calculating all possibleimplied orders may not function under the limits of computing capacityand time found in the exchange. As the tradable combination becomeslarger, the chance that an executed trade will actually result fromindentifying the corresponding implied order decreases. FIG. 1demonstrates this principle by illustrating that the slope of plot 11decreases as the number of generations increases. The “number ofgenerations” refers the number of outright orders or strategies that maybe combined with the original order to reach a tradable combination. Inother words, the number of generations in a tradable combination is thenumber of implied orders that are based off of other implied orders.

As the tradeable combination becomes larger, the number of calculationsinvolved in computing the implied order increases exponentially. Forexample, FIG. 2 demonstrates that the slope of plot 11 increases as thenumber of generations increases. As demonstrated by FIGS. 1 and 2, anExchange experiences a diminishing marginal return on the computingpower and time needed to compute all tradable combinations.

One of the challenges in calculating tradable combinations isidentifying combinations that include complicated strategies. Acombination contract or “strategy” is defined by two or more outrightcontracts which are referred to as legs. Regulated and unregulatedexchanges and other electronic trading services make use of electronictrading systems. For example, the following embodiments are applicableto any trading or futures market in the United States or elsewhere inthe world, for example, the Chicago Board of Trade (CBOT), the ChicagoMercantile Exchange (CME), the Bolsa de Mercadorias e Futoros in Brazil(BMF), the London International Financial Futures Exchange, the New YorkMercantile Exchange (NYMEX), the Kansas City Board of Trade (KCBT),MATIF (in Paris, France), the London Metal Exchange (LME), the TokyoInternational Financial Futures Exchange, the Tokyo Commodity Exchangefor Industry (TOCOM), the Meff Renta Variable (in Spain), the DubaiMercantile Exchange (DME), and the Intercontinental Exchange (ICE).

FIG. 3 an exemplary vector space 200. In commodities trading, anoutright contract is defined by a product and a delivery period. Aspread contract is defined as the simultaneous (or near simultaneous)purchase and sale of two outright contracts. Calendar spread contractsare spread contract between futures contracts for different months andthe same commodity. Intercommodity spreads are spread contracts betweenfutures contracts for different commodities but the same month. Thecombination of a calendar spread and an intercommodity spread, a spreadbetween futures contracts for different commodities and differentmonths, may also be traded. The purchase component of the spread may bereferred to as the bid leg, and the sale component of the spread may bereferred to as the offer leg. The vector spread of FIG. 3 includes threeoutright contracts and the possible spreads involving the three outrightcontracts.

Various conventions or nomenclature could be used to represent thepossible financial instruments. FIG. 3 illustrates a system thatrepresents outrights L₁, L₂, and L₃ and the spreads involving outrightsL₁, L₂, and L₃ using a vector notation. Each column in the vectorrepresents one of the possible outrights. For example, the vector may bedefined as ({June crude oil}, {September crude oil}, {December crudeoil}), in which case the spreads will be calendar spreads. An orderrepresented as (0, 0, 1) is a buy order for December crude oil. A spreadrepresented as (0, 1, −1) is a calendar spread to buy September crudeoil and sell December crude oil.

The total number of outrights (or columns) in the vector defines thetotal number of instruments possible. Of course, some of the instrumentsmay not be available on the Exchange. The example of FIG. 3 shows 12possible instruments: a buy order for each of the three financialinstruments, a sell order for each of the three financial instruments,and the six calendar spreads involving the three financial instruments.

The quantity “1” represents buying one trading unit, which couldcorrespond to any quantity as defined by the exchange. While not shown,buying two trading units may be represented as “2” and so on. Negativesigns indicate selling trading units.

The example shown in FIG. 3 lists complementary orders. For example,both (1,0,0) and (−1,0,0) are shown. In an alternative construction,pairs of complementary orders need not be included in the vector space.That is, only one of (1,0,0) and (−1,0,0) would be included. If theconstruction of a tradable combination, as discussed below, needed acomplement of a vector, the system would simply multiply each column inthe vector by −1. This can occur because generally any order can beeither a buy or a sell. Using this construction, the vector space ofFIG. 3, could be shown using only six vectors: for example, (1,0,0),(0,1,0), (0,0,1), (1,−1,0), (0,1,−1), and (1,0,−1).

A butterfly spread contract may be represented using the vector notionas (1, −2, 1). A butterfly spread contract consists of three legsreferred to as the wing, the body and the (second) wing. Typically, thebutterfly spread contract is defined with the wing, the body and thesecond wing in three successive delivery periods. The double position inthe middle is called the body, while the two other positions are calledthe wings. To take a long position in the butterfly spread contract, thetrader or market participant buys the wings and sells the body. In thisexample, the buy orders make up the wings and the sell orders make upthe body.

While not shown, futures strips could also be represented using thevector notation. A futures strip is the purchase of a commodity in aseries of periods, which may be sequential. For example, using thevector ({June crude oil}, {September crude oil}, {December crude oil})above, (1, 1, 1) would indicate strip order to buy crude oil futures inJune, September, and December. It should be noted that the example ofFIG. 3 could also optionally include strip orders such as (1,1,0),(0,1,1), (1,0,1), or (1,1,1).

The electronic trading system disclosed herein selectively matchespossible orders in tradable combination that are likely to actuallyincrease the total volume of trading. For example, the match engine inthe electronic system is configured to operate a predetermined set ofrules that have been shown to increase the likelihood of reachingtradable combinations in less time than brute force or iterativeprocesses.

FIG. 4 illustrates an electronic trading system 300. The electronictrading system 300 includes one or more terminals 301, a match engine303, a reporting device 305, and a market data server 307. The matchengine 303 is coupled with the reporting device 305 and one or moreterminals 301. The market data server 307 may be coupled with the matchengine 303, the reporting device 305, or both. As used herein, the term“coupled with” includes directly connected or indirectly connectedthrough one or more intermediary components. The optional intermediarycomponents may include networks, hardware and/or software.

One or more terminals 301 may be used by traders or market participantsto place orders and/or receive market data. Terminals 301 may beimplemented using personal computers, servers, mobile phones, personaldigital assistance, or wireless devices. Terminals 301 include a centralprocessor that controls the overall operation of the computer, a userinterface that allows the trader or market participant to enter and/orreceive information, and a communication device such as a network cardor a modem that allows communication with the electronic trading system300.

Terminals 301 may be in communication with the electronic trading system300 by way of a local area network (LAN) 309 or wirelessly by way of atransceiver. LAN 309 may be implemented using a variety of protocols andspecifications, such as Ethernet. The physical connection of LAN 309 maybe twisted pair wires, coaxial cable, or fiber optics. LAN 309 may alsobe in communication with the Internet, which would allow terminals 301to be in any location remote from the rest of the electronic tradingsystem 300.

Match engine 303 is a specialized order matching component that receivesorders, stores them internally, calculates tradable combinations, andadvertises the availability of real and implied orders in the form ofmarket data. Traders or market participants may respond to the marketsystem by placing additional orders, which are received by the matchengine 303. The match engine 303 attempts to match them with previouslyreceived orders or combinations of orders. The match engine 303 executesany completed tradable combination and communicates the results.

Market data server 307 may be a server or other computer coupled withLAN 309. Reporting device 305 may be a communication device for encodingand/or decoding data for communication on LAN 309. Reporting device 305may include a display configured to communicate tradable combinationsand/or implied orders to market participants or traders. Additionally,reporting device 305 may be in communication with the Internet tocommunicate tradable combination and/or implied orders to marketparticipants or traders via the Internet.

FIG. 5 illustrates a detailed view of match engine 303 of FIG. 4. Matchengine 303 include a match engine processor 401, a candidate listgenerator 403, a communications interface 405, an order submissioninterface 407, a database 409, a comparator 411, an implied ordergenerator 413, and a communication bus 415.

The match engine processor 401 represents three or more financialproducts using a plurality of vectors having a number of columns,wherein the number of columns is equal to the number of unique legs(outrights) making up the financial products. One example of such aplurality of vectors is the vector space 200 shown in FIG. 3. Thefinancial products may be any financial instruments including, forexample, futures, options, inter-commodity spreads, intra-commodityspreads, futures strips, calendar spreads, butterfly spreads, condorspreads, crack spreads, straddles, and strangles.

The order submission interface 407 is coupled with one or more terminals301 and configured to receive orders from traders or marketparticipants. The order submission interface 407 may be a communicationdevice such as a network card or a modem coupled with LAN 309.Alternatively, order submission interface 407 may be implemented withsoftware or firmware capable of receiving and decoding order data fromthe one or more terminals 301 by way of communication bus 415.

The candidate list generator 403 represents the first order as a vectorof the plurality of vectors and identifies a list of candidate vectorsfrom the plurality of vectors. The list of candidate vectors isgenerated according to a set of one or more rules. The rules may bestored in database 409. One exemplary rule is that each candidate vectorhas at least one nonzero column in common with the first vector. Anotherexemplary rule is that only one butterfly spread contract may be used ineach tradable combination. In other words, all remaining butterflyspread contracts will be removed from the candidate list after onebutterfly is selected.

Alternatively, a rule could be selected that no more than apredetermined maximum number of strategies be used in any tradablecombination. The predetermined maximum number of strategies may be anynumber and the strategies limited could be one or more ofinter-commodity spreads, intra-commodity spreads, calendar spreads,butterfly spreads, double butterfly spreads, condor spreads, crackspreads, straddles, and strangles. Other rules may be implemented thatare implemented by other components of match engine 303.

After the candidate list has been generated and/or limited according tothe predetermined rules, the comparator 411 selects a vector from thelist of candidate vectors. The comparator 411 may select any vector fromthe list of candidate vectors.

In one embodiment, the comparator 411 may select a vector that has asmany or more nonzero columns as each vector in the list of candidatevectors (the selected vector may have the most nonzero columns of thecandidate vectors or the same number of nonzero columns as other vectorsin the candidate list). When more than one vector has the most nonzerocolumns, a tiebreaker may be used. A tiebreaker may be that the vectorwith the earliest expiry for the bid leg is selected. The tiebreaker maybe that the vector with the latest expiry for the offer leg is selected.The tiebreaker may be simply to select one of the vectors at random. Theterms of the tiebreaker may be defined as a rule stored in database 409.

Other rules may be stored in database that control the operation ofcomparator 411. As discussed above, a rule may prevent comparator 411from selecting a particular strategy when a strategy of the same typehas already been selected. For example, if a condor spread was used inthe first iteration, another condor spread cannot be selected in thesecond iteration. Likewise, a rule could prohibit futures strips frombeing selected after a calendar spread with a common nonzero column hasalready been selected because it will naturally lead to a morecomplicated combination. Another rule may be that no vector in thecandidate list may be selected that can form a tradable combination witha previously selected vector. This is because the two vectors that canform a tradable combination should not be used in the search foradditional tradable combinations. The two vectors that form a tradablecombination would simply be matched without the need for additionalcalculations.

The rules may be entered into the match engine 303 by a user. Forexample, the user may communicate or select rules by way of LAN 309and/or the Internet. Alternatively, the communications interface 405 mayinclude a keyboard or mouse which allows a user to communicate or selectrules. Additionally, the communication interface 405 may include adisplay.

The comparator 411 adds the vector corresponding to the received orderto the selected vector to define an intermediate vector and thecandidate list generator 403 removes the selected vector from the listof candidate vectors. The intermediate vector is the sum of two or morevectors which does not yield a vector of all zeroes.

The implied order generator 413 is coupled with the reporting device305. If the intermediate vector includes all zeroes (has no nonzerocolumns) then a tradable combination has been completed. The impliedorder generator 413 generates an implied order corresponding to theselected vector such that if a trader or market participant submits anorder than will trade with the implied order, the tradable cycle will becompleted. The implied order calculated at this stage may be termed afirst generation implied order.

If the intermediate vector does not include all zeroes, the processrepeats using the updated candidate list. The repeating nature of theprocess may be governed by a rule. For example, the process may belimited to repeat only once, resulting in no more than second generationimplied orders. Alternatively, the process may be limited to repeat anymaximum number of times, which may be set by the Exchange.

In other words, the components of the match engine 303 are configured torepeat the above process. The comparator 411 selects another vector(third vector) from the list of candidate vectors and adds the thirdvector to the intermediate vector to define a second intermediatevector. The third vector may be selected from any of the remainingcandidates. In one embodiment, the third vector may be the vectorremaining that has as many or more nonzero columns in common with theintermediate vector as all remaining vectors in the list of candidatevectors. The implied order generator 413 is configured to output asecond implied order corresponding to the third vector, if the secondintermediate vector has no nonzero columns. If the second intermediatevector has one or more nonzero column, the process will repeat again,unless a rule prohibits it. For example, a rule that prohibited morethat second generation implied orders would prohibit another repetition.

FIG. 6 illustrates an exemplary algorithm for providing implied ordersin an electronic trading system. FIG. 6 also illustrates the exemplaryalgorithm as performed on the vector space 200 shown by FIG. 3.

At block S101, the match engine 303 represents three or more financialproducts using a plurality of vectors having a number of columns,wherein the number of columns is equal to the number of unique legsmaking up the financial products. At block S103, the candidate listgenerator 403 defines a first order (as a starting point) as one of theplurality of vectors. For example, using the vector space 200 of FIG. 3,L₁ ⁺ L₂ ⁻ or (1, −1, 0).

At block S105, the candidate list generator 403 then identifies a listof candidate vectors from the plurality of vectors, each candidatevector having at least one nonzero column in common with the firstvector. Continuing with the vector space 200 of FIG. 3, the list ofcandidate vectors includes (−1, 0, 0), (−1, 0, 1), (0, 1, 0) and (0, 1,−1).

At block S107, comparator 411 selects a second vector from the list ofcandidate vectors that has one or more nonzero columns as each vector inthe list of candidate vectors. Depending on the predetermined rulesfollowed by match engine 303, either (−1, 0, 1) or (0, 1, −1) may bechosen. As shown, (0, 1, −1) is selected.

At block S109, comparator 411 adds the first vector to the second vectorto define a first intermediate vector. In the example shown, theintermediate vector is (1, 0, −1). At block S111, the match engine 303determines whether the intermediate vector has all nonzero values. Ifthe result of block S111 is no, the process returns to S105 and updatesthe list of candidate vectors. If the result of block S111 is yes, animplied order corresponding to the second vector is output to theelectronic trading system 300 at block S113.

In the example shown, the result of block S111 is no, and accordinglythe process returns to S105 and a possible second generation impliedwill be calculated. At block S105, the list of candidate vectors isupdated to remove previously used intermediate vector (0, 1, −1). Atblock S107, comparator 411 selects a third vector from the list ofcandidate vectors. This time, vector, (−1, 0, 1) is selected. At blockS109, comparator 411 adds the third vector to the previously usedintermediate vector to arrive at second intermediate vector, (0, 0, 0).At block S111, the match engine 303 determines that the new intermediatevector has all nonzero columns, and an implied order corresponding tothe second vector and third vector is output to the electronic tradingsystem 300 at block S113.

FIG. 7 illustrates another exemplary algorithm for providing impliedorders in an electronic trading system. At block S201, match engine 303creates a basis vector representation for all instruments that are not astrategy as ImplicableVectorList (IVL). At block S203, the match engine303 determines whether there are strategies in the implicable contractset. If there are, the match engine 303 creates, at S205, a vectorrepresentation for all strategies and includes them in IVL. At blockS207, IVL is copied to ImplicableVectorSource (IVS).

At block S208, the match engine 303 selects a start vector (SV) from theIVS list which has the most nonzero columns. At block S209, thecandidate list (CL) is generated by finding all vectors in IVL whichhave at least one nonzero column in common with SV. However, if CL isempty at S211, the starting vector is removed from IVS at S213 and ifthe IVS is empty, the process finished.

Until CL is empty, the comparator 411 will select a candidate from CLand add it to SV to create an intermediate vector (IV). The match engine303 will then check the set of rules stored in database 409 todetermine, at block S225, whether the addition violates any constraints.If so, the candidate vector will be removed from the candidate list. Ifnot, the comparator 411 will determine whether IV is equal to 0(includes no nonzero columns). If IV includes nonzero columns, the matchengine 303 will return to block S209 and repeat. If IV does not includenonzero columns.

Embodiments of the subject matter and the functional operationsdescribed in this specification can be implemented in digital electroniccircuitry, or in computer software, firmware, or hardware, including thestructures disclosed in this specification and their structuralequivalents, or in combinations of one or more of them. Embodiments ofthe subject matter described in this specification can be implemented asone or more computer program products, i.e., one or more modules ofcomputer program instructions encoded on a computer readable medium forexecution by, or to control the operation of, data processing apparatus.The computer readable medium can be a machine-readable storage device, amachine-readable storage substrate, a memory device, or a combination ofone or more of them. The term “data processing apparatus” encompassesall apparatus, devices, and machines for processing data, including byway of example a programmable processor, a computer, or multipleprocessors or computers. The apparatus can include, in addition tohardware, code that creates an execution environment for the computerprogram in question, e.g., code that constitutes processor firmware, aprotocol stack, a database management system, an operating system, or acombination of one or more of them.

A computer program (also known as a program, software, softwareapplication, script, or code) can be written in any form of programminglanguage, including compiled or interpreted languages, and it can bedeployed in any form, including as a standalone program or as a module,component, subroutine, or other unit suitable for use in a computingenvironment. A computer program does not necessarily correspond to afile in a file system. A program can be stored in a portion of a filethat holds other programs or data (e.g., one or more scripts stored in amarkup language document), in a single file dedicated to the program inquestion, or in multiple coordinated files (e.g., files that store oneor more modules, sub programs, or portions of code). A computer programcan be deployed to be executed on one computer or on multiple computersthat are located at one site or distributed across multiple sites andinterconnected by a communication network.

The processes and logic flows described in this specification can beperformed by one or more programmable processors executing one or morecomputer programs to perform functions by operating on input data andgenerating output. The processes and logic flows can also be performedby, and apparatus can also be implemented as, special purpose logiccircuitry, e.g., an FPGA (field programmable gate array) or an ASIC(application specific integrated circuit).

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andanyone or more processors of any kind of digital computer. Generally, aprocessor will receive instructions and data from a read only memory ora random access memory or both. The essential elements of a computer area processor for performing instructions and one or more memory devicesfor storing instructions and data. Generally, a computer will alsoinclude, or be operatively coupled to receive data from or transfer datato, or both, one or more mass storage devices for storing data, e.g.,magnetic, magneto optical disks, or optical disks. However, a computerneed not have such devices. Moreover, a computer can be embedded inanother device, e.g., a mobile telephone, a personal digital assistant(PDA), a mobile audio player, a Global Positioning System (GPS)receiver, to name just a few. Computer readable media suitable forstoring computer program instructions and data include all forms of nonvolatile memory, media and memory devices, including by way of examplesemiconductor memory devices, e.g., EPROM, EEPROM, and flash memorydevices; magnetic disks, e.g., internal hard disks or removable disks;magneto optical disks; and CD ROM and DVD-ROM disks. The processor andthe memory can be supplemented by, or incorporated in, special purposelogic circuitry.

To provide for interaction with a user, embodiments of the subjectmatter described in this specification can be implemented on a devicehaving a display, e.g., a CRT (cathode ray tube) or LCD (liquid crystaldisplay) monitor, for displaying information to the user and a keyboardand a pointing device, e.g., a mouse or a trackball, by which the usercan provide input to the computer. Other kinds of devices can be used toprovide for interaction with a user as well; for example, feedbackprovided to the user can be any form of sensory feedback, e.g., visualfeedback, auditory feedback, or tactile feedback; and input from theuser can be received in any form, including acoustic, speech, or tactileinput.

Embodiments of the subject matter described in this specification can beimplemented in a computing system that includes a back end component,e.g., as a data server, or that includes a middleware component, e.g.,an application server, or that includes a front end component, e.g., aclient computer having a graphical user interface or a Web browserthrough which a user can interact with an implementation of the subjectmatter described in this specification, or any combination of one ormore such back end, middleware, or front end components. The componentsof the system can be interconnected by any form or medium of digitaldata communication, e.g., a communication network. Examples ofcommunication networks include a local area network (“LAN”) and a widearea network (“WAN”), e.g., the Internet.

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other.

While this specification contains many specifics, these should not beconstrued as limitations on the scope of the invention or of what may beclaimed, but rather as descriptions of features specific to particularembodiments of the invention. Certain features that are described inthis specification in the context of separate embodiments can also beimplemented in combination in a single embodiment. Conversely, variousfeatures that are described in the context of a single embodiment canalso be implemented in multiple embodiments separately or in anysuitable subcombination. Moreover, although features may be describedabove as acting in certain combinations and even initially claimed assuch, one or more features from a claimed combination can in some casesbe excised from the combination, and the claimed combination may bedirected to a subcombination or variation of a subcombination.

Similarly, while operations are depicted in the drawings in a particularorder, this should not be understood as requiring that such operationsbe performed in the particular order shown or in sequential order, orthat all illustrated operations be performed, to achieve desirableresults. In certain circumstances, multitasking and parallel processingmay be advantageous. Moreover, the separation of various systemcomponents in the embodiments described above should not be understoodas requiring such separation in all embodiments, and it should beunderstood that the described program components and systems cangenerally be integrated together in a single software product orpackaged into multiple software products.

Thus, particular embodiments of the invention have been described. Otherembodiments are within the scope of the following claims. For example,the actions recited in the claims can be performed in a different orderand still achieve desirable results.

What is claimed is:
 1. A computer implemented method of optimizing thecomputation of implied orders to a electronic trading system, the methodcomprising: representing three or more financial products using aplurality of vectors having a number of columns, wherein the number ofcolumns is equal to the number of unique legs making up the financialproducts; defining a first order as a first vector of the plurality ofvectors; identifying a list of candidate vectors from the plurality ofvectors, each candidate vector having at least one nonzero column incommon with the first vector; selecting a second vector from the list ofcandidate vectors; adding the first vector to the second vector todefine a first intermediate vector; removing the second vector from thelist of candidate vectors; and outputting, to the electronic tradingsystem, a first implied order corresponding to the second vector, if thefirst intermediate vector has no nonzero columns.
 2. The method of claim1, further comprising: selecting a third vector from the list ofcandidate vectors and adding the third vector to the first intermediatevector to define a second intermediate vector, if the first intermediatevector has one or more nonzero columns; and outputting a second impliedorder corresponding to the second vector and third vector, if the secondintermediate vector has no nonzero columns.
 3. The method of claim 2,wherein the third vector and the second are not tradable.
 4. The methodof claim 1, further comprising: executing a tradable cycle correspondingto the first vector and the second vector.
 5. The method of claim 1,wherein the second vector is selected because it has as many or morenonzero columns as each vector in the list of candidate vectors.
 6. Themethod of claim 5, wherein selecting a second vector from the list ofcandidate vectors further comprises selecting the second vector based onexpiry when there are more than one vector that has as many or morenonzero columns in common with the first vector as each vector in thelist of candidate vectors.
 7. The method of claim 1, further comprising:selecting the list of financial instruments or strategies based on auser input.
 8. The method of claim 1, further comprising: restrictingthe list of candidate vectors based on a user input.
 9. The method ofclaim 1, further comprising: removing, if the second vector is abutterfly spread, all other butterfly spreads from the list of candidatevectors.
 10. The method of claim 1, further comprising: performing theselecting, adding, removing, and outputting for a subsequent vector anda subsequent candidate vector according to a predetermined maximumnumber of iterations.
 11. The method of claim 10, further comprising:specifying the predetermined maximum number of iterations according to auser input.
 12. The method of claim 10, further comprising: specifyingthe predetermined maximum number of iteration according to the type offinancial instrument or strategy represented by the first vector. 13.The method of claim 1, wherein the first implied order is a secondgeneration implied order generated without defining any first generationimplied orders.
 14. An electronic trading system comprising: a matchengine processor configured to represent three or more financialproducts using a plurality of vectors having a number of columns,wherein the number of columns is equal to the number of unique legsmaking up the financial products; a candidate list generator configuredto define a first order as a first vector of the plurality of vectorsand identify a list of candidate vectors from the plurality of vectors,each candidate vector having at least one nonzero column in common withthe first vector; a comparator configured to select a second vector fromthe list of candidate vectors that has one or more nonzero columns aseach vector in the list of candidate vectors and add the first vector tothe second vector to define a first intermediate vector, wherein thecandidate list generator is configured to remove the second vector fromthe list of candidate vectors; and an implied order generator configuredto output, to the electronic trading system, a first implied ordercorresponding to the second vector, if the first intermediate vector hasno nonzero columns.
 15. The electronic trading system of claim 14,wherein the second vector is selected because it has as many or morenonzero columns as each vector in the list of candidate vectors.
 16. Theelectronic trading system of claim 15, wherein selecting a second vectorfrom the list of candidate vectors further comprises selecting thesecond vector based on expiry when there are more than one vector thathas as many or more nonzero columns in common with the first vector aseach vector in the list of candidate vectors.
 17. The electronic tradingsystem of claim 14, wherein the comparator is further configured toselect a third vector from the list of candidate vectors and adding thethird vector to the first intermediate vector to define a secondintermediate vector, if the first intermediate vector has one or morenonzero columns.
 18. The electronic trading system of claim 15, whereinthe implied order generator is configured to output a second impliedorder corresponding to the second vector and third vector, if the secondintermediate vector has no nonzero columns.
 19. The electronic tradingsystem of claim 14, wherein the third vector and the second are nottradable.
 20. The electronic trading system of claim 14, wherein thematch engine process is further configured to execute a tradable cyclecorresponding to the first vector and the second vector.
 21. Theelectronic trading system of claim 14, wherein the order submissioninterface is configured to select the list of financial instruments orstrategies based on a user input.
 22. The electronic trading system ofclaim 14, wherein the list of candidate vectors is restricted based on auser input.
 23. The electronic trading system of claim 14, wherein thecandidate list generator is configured to remove all butterfly spreadsfrom the list of candidate vectors if the second vector is a butterflyspread.
 24. A computer implemented method of optimizing the computationof implied orders to a electronic trading system, the method comprising:representing three or more financial products using a plurality ofvectors having a number of columns, wherein the number of columns isequal to the number of unique legs making up the financial products;defining a first order as a first vector of the plurality of vectors;reducing the plurality of vectors to a list of candidate vectors usingone or more constraints, selecting a second vector from the list ofcandidate vectors that has one or more nonzero columns as each vector inthe list of candidate vectors; adding the first vector to the secondvector to define a first intermediate vector; removing the second vectorfrom the list of candidate vectors; and outputting, to the electronictrading system, a first implied order corresponding to the secondvector, if the first intermediate vector has no nonzero columns.